﻿/// ##############################################################################
/// 
/// Original Author         : Nick Hoggard (nick@silvercode.co.nz)
/// 
/// ##############################################################################
/// License and Copywrite information
/// 
/// Copyright (c) 2010, Nick Hoggard (nick@silvercode.co.nz)
/// All rights reserved.
/// 
/// Redistribution and use in source and binary forms, with or without
/// modification, are permitted provided that the following conditions are met:
///     * Redistributions of source code must retain the above copyright
///       notice, this list of conditions and the following disclaimer.
///     * Redistributions in binary form must reproduce the above copyright
///       notice, this list of conditions and the following disclaimer in the
///       documentation and/or other materials provided with the distribution.
///     * Neither the name of the copywrite holder nor the names of its contributors 
///       may be used to endorse or promote products derived from this software 
///       without specific prior written permission.
/// 
/// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
/// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
/// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
/// DISCLAIMED. IN NO EVENT SHALL Nick Hoggard BE LIABLE FOR ANY
/// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
/// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
/// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
/// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
/// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
/// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/// ##############################################################################

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;

namespace TimeSheetControl.ObjectModel
{
    public class TimeSheetSummaryList : List<TimesheetSummary>
    {
        public List<TimesheetSummaryItem> GetFlatTimesheetEntries()
        {
            List<TimesheetSummaryItem> items = new List<TimesheetSummaryItem>();
            foreach (TimesheetSummary summary in this.ToArray())
            {
                foreach (TimeSheetEntry entry in summary.WorkItemTimeSheet)
                {
                    items.Add(new TimesheetSummaryItem() { 
                        WIID = summary.WorkItemID, 
                        Entry = entry, 
                        ProjectName = summary.ProjectName,
                        Title = summary.Title,
                        Area = summary.Area,
                        Iteration = summary.Iteration 
                    });
                }
            }
            return items;
        }
    }


    public class TimesheetSummary 
    {
        public int WorkItemID { get; set; }
        public string ProjectName { get; set; }
        public TimeSheet WorkItemTimeSheet { get; set; }
        public string Title { get; set; }
        public string Area { get; set; }
        public string Iteration { get; set; }
    }

    public class TimesheetSummaryItem
    {
        public int WIID { get; set; }
        public string ProjectName { get; set; }
        public TimeSheetEntry Entry { get; set; }
        public string Title { get; set; }
        public string Area { get; set; }
        public string Iteration { get; set; }
    }
}
